package com.smedi.ismedi.inmail.core.application.query;

import com.smedi.ismedi.inmail.api.dto.response.safetyBoard.*;
import com.smedi.ismedi.inmail.core.application.command.*;
import com.smedi.ismedi.inmail.core.application.query.vo.*;

import java.util.List;

public interface SafetyBoardQueryService {

    ProjectStatisticsVo getProjectStatistics();

    LaborStatisticsVo getLaborStatistics();

    ProjectStatisticsByRegionVo getProjectStatisticsByRegion(String provinceName);

    List<StatisticsNodeVo> getSafetyCheckInstituteStatics(SafetyCheckInstituteStatisticsCommand safetyCheckInstituteStatisticsCommand);
    
    List<StatisticsNodeVo> getSafetyCheckOrganizationStatics(SafetyCheckOrganizationStatisticsCommand safetyCheckOrganizationStatisticsCommand);

    List<StatisticsNodeVo> getHiddenDangerInstituteStatics(HiddenDangerInstituteStatisticsCommand hiddenDangerInstituteStatisticsCommand);
    
    List<StatisticsNodeVo> getHiddenDangerOrganizationStatics(HiddenDangerOrganizationStatisticsCommand hiddenDangerOrganizationStatisticsCommand);

    SafetyBoardOverviewVo getSafetyBoardOverview();

    MajorHazardPageVo getTodayMajorHazardPage(MajorHazardTodayPageCommand majorHazardTodayPageCommand);
    
    DangerSourcePageVo getTodayDangerSourcePage(DangerSourceTodayPageCommand dangerSourceTodayPageCommand);

    HiddenDangerStatisticsVo getHiddenDangerStatistics(HiddenDangerStatisticsCommand hiddenDangerStatisticsCommand);

    List<HiddenDangerProjectStatisticsVo> getHiddenDangerProjectStatics(HiddenDangerProjectStatisticsCommand hiddenDangerProjectStatisticsCommand);
    
    List<SafetyCheckProjectStatisticsVo> getSafetyCheckProjectStatics(SafetyCheckProjectStatisticsCommand safetyCheckProjectStatisticsCommand);
    
    List<SafetyEducationProjectStatisticsVo> getSafetyEducationProjectStatics(SafetyEducationProjectStatisticsCommand safetyEducationProjectStatisticsCommand);
}
